package nicg.st.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import nicg.st.entity.Divate;
import nicg.st.entity.EvalParamPO;
import nicg.st.entity.EvalParams;
import nicg.st.entity.IndicatorDataDetail;
import nicg.st.entity.IndicatorSys;
import nicg.st.entity.IndicatorSysDetail;
import nicg.st.entity.InputParam;
import nicg.st.entity.ParamDetail;
import nicg.st.entity.SchemeList;
import nicg.st.entity.TaskDetail;
import nicg.st.entity.TaskXDQD;
import nicg.st.entity.XDDetail;

@Mapper
public interface EvalDataEnterMapper {
	List<IndicatorSys> getIndicatorSys();

	List<String> getSubIndicator(@Param("indicatorId") int indicatorId);

	String getUnitName(@Param("id") int id);

	List<IndicatorSysDetail> getMiss(@Param("indicatorSystemId") int indicatorSystemId,
			@Param("parentName") String parentName);

	List<Integer> getUnitNum(@Param("unitId") int unitId);

	List<Integer> getUnitCorId(@Param("unitId") int unitId);

	String getJcName(@Param("jcId") int jcId);

	Integer getJcRemark(@Param("jcId") int jcId);

	Integer getLabelNum(@Param("indicatorId") int indicatorId, @Param("indicatorLevle") int indicatorLevle);

	Float getWeight(@Param("indicatorId") int indicatorId, @Param("indicatorName") String indicatorName);

	String getLabelName(@Param("indicatorId") int indicatorId, @Param("indicatorLevle") int indicatorLevle);

	List<String> getIndicatorChildName(@Param("indicatorId") int indicatorId, @Param("parentName") String parentName,
			@Param("indicatorLevle") int indicatorLevle);

	Float getPeopleWeight(@Param("id") int id);

	// void setEvalScheme(@Param("name") String name,
	// @Param("ourArmyId") int ourArmyId,
	// @Param("enemyArmyId") int enemyArmyId,
	// @Param("date") Date date,
	// @Param("score") double score);

	List<IndicatorSysDetail> getIndicatorDetail(@Param("indicatorId") int indicatorId);

	Integer setIndicatorDataDetail(IndicatorDataDetail indicatorDataDetail);

	// 指标体系id
	List<Integer> getIndicatorId();

	// 根据用户级别和任务类型查找指标体系
	Integer getNowIndicatorId(@Param("userLevel") int userLevel, @Param("taskType") int taskType);

	// 根据用户级别和任务类型查找指标体系
	List<IndicatorSys> getNowIndicators(@Param("userLevel") int userLevel, @Param("taskType") int taskType);

	// 根据id查找父节点信息
	IndicatorSysDetail getRootDetail(@Param("id") int id);

	// 根据当前节点查找孩子节点
	List<IndicatorSysDetail> getChilder(@Param("id") int id, @Param("parentName") String parentName);

	List<IndicatorSysDetail> getChilderTwo(@Param("id") int id);

	void setEvalScheme(SchemeList schemeList);

	Integer getSchemeId(@Param("name") String name, @Param("userId") int user_id);

	void insertIndicatorData(IndicatorDataDetail indicatorDataDetail) throws Exception;

	ParamDetail getParamDetail(@Param("paramId") int paramId);

	List<IndicatorSysDetail> getChildren(@Param("indicatorId") int indicatorId, @Param("fatherName") String fatherName,
			@Param("level") int level);

	Integer getMethod(int id);

	List<EvalParamPO> getParams(int id);

	SchemeList getChildScore(int indicatorId);

	SchemeList getSchemeByName(String name);

	SchemeList getSchemeByRwnm(String rwnm);

	List<TaskXDQD> getTasks();

	List<Double> getCombatValue();

	List<Integer> getOriginalNum();

	List<Integer> getLossNum();

	List<TaskDetail> getLVTasks();

	List<IndicatorSys> getTaskIndicators(@Param("userID") String userID, @Param("rwlx") String rwlx);

	List<XDDetail> getXDLists(@Param("rwnm") String rwnm);

	String getRWLX(@Param("rwnm") String rwnm);

	List<EvalParams> getEvalParams(int id);

	List<InputParam> getInputParams(int id);

	Double getMaxValueById(int id);

	Integer getTaskType(@Param("rwlx") String rwlx);
	
	List<Divate> getDivateList();
}
